package jm.nj.demo09mian.demo01;

import java.io.StringReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;

/*
 * Map集合遍历的第二种方法:Map集合遍历键值对方式
 *
 * Map集合中的方法:
 *       set<Map.Entry<K,V>entrySet>()  获取的是Map集合的键值映射关系(结婚证)的Set集合
 *       映射关系上既包含了Key,又包含Value的值
 *
 *
 * 遍历步骤:
 *       1.创建Map集合,`往集合中添加数据
 *       2.通过Map中的方法entrySet,获取的是Map集合的键值映射关系,把对应关系存储到Set集合中
 *       3.遍历映射关系的set集合,获取每一个映射关系
 *       4.通过映射关系的getKey和getvalue获取键和值
 * */
public class Demo03Map {
    public static void main(String[] args) {
        Map<String, String> map = new HashMap<String, String>();
        map.put("张三", "18");
        map.put("李", "19");
        map.put("王", "20");
        map.put("赵", "21");
        map.put("田", "22");

        //通过Map集合中的方法entrySet,获取Map集合的键值对应关系,把对应关系存储到Set集合中
        //内部类的使用:外部类名.内部类名      Map.entry<K,Y>
        Set<Map.Entry<String, String>> set = map.entrySet();
        //3.遍历包含映射关系的set集合,获得到每一映射关系
        //迭代器
        Iterator<Map.Entry<String, String>> it = set.iterator();
        while (it.hasNext()) {
            Map.Entry<String, String> entry = it.next();
            //4.通过映射关系中的方法getKey和getvalue获取键和值
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+":"+value);
        }
        System.out.println("++++++++++++");
        //使用增强for
        for(Map.Entry<String,String> entry :set){
            //4.通过映射关系中的方法getKey和getValue获取健和值
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+":"+value);
        }

        System.out.println("----------");
        for (Map.Entry<String, String> entry : map.entrySet()) {
            //4.通过映射关系中的方法getKey和getValue获取健和值
            String key = entry.getKey();
            String value = entry.getValue();
            System.out.println(key+":"+value);

        }

    }
}
